/**
 */
package ram_pc.impl;

import java.util.Map;

import org.eclipse.emf.common.util.EMap;

import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EDataType;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EPackage;

import org.eclipse.emf.ecore.impl.EFactoryImpl;

import org.eclipse.emf.ecore.plugin.EcorePlugin;

import ram_pc.AbstractMessageView;
import ram_pc.Aspect;
import ram_pc.AspectMessageView;
import ram_pc.Association;
import ram_pc.AssociationEnd;
import ram_pc.Attribute;
import ram_pc.AttributeMapping;
import ram_pc.Classifier;
import ram_pc.ClassifierMapping;
import ram_pc.CombinedFragment;
import ram_pc.DestructionOccurrenceSpecification;
import ram_pc.ExecutionStatement;
import ram_pc.FragmentContainer;
import ram_pc.Gate;
import ram_pc.ImplementationClass;
import ram_pc.Instantiation;
import ram_pc.InstantiationType;
import ram_pc.Interaction;
import ram_pc.InteractionFragment;
import ram_pc.InteractionOperand;
import ram_pc.InteractionOperatorKind;
import ram_pc.Layout;
import ram_pc.LayoutElement;
import ram_pc.Lifeline;
import ram_pc.LiteralBoolean;
import ram_pc.LiteralInteger;
import ram_pc.LiteralSpecification;
import ram_pc.LiteralString;
import ram_pc.MappableElement;
import ram_pc.Mapping;
import ram_pc.Message;
import ram_pc.MessageEnd;
import ram_pc.MessageOccurrenceSpecification;
import ram_pc.MessageSort;
import ram_pc.MessageView;
import ram_pc.MessageViewReference;
import ram_pc.NamedElement;
import ram_pc.ObjectType;
import ram_pc.OccurrenceSpecification;
import ram_pc.OpaqueExpression;
import ram_pc.Operation;
import ram_pc.OperationMapping;
import ram_pc.OriginalBehaviorExecution;
import ram_pc.Parameter;
import ram_pc.ParameterMapping;
import ram_pc.ParameterValue;
import ram_pc.ParameterValueMapping;
import ram_pc.Pointcut;
import ram_pc.PrimitiveType;
import ram_pc.Property;
import ram_pc.RAny;
import ram_pc.RBoolean;
import ram_pc.RChar;
import ram_pc.RCollection;
import ram_pc.REnum;
import ram_pc.REnumLiteral;
import ram_pc.RInt;
import ram_pc.RList;
import ram_pc.RSet;
import ram_pc.RString;
import ram_pc.RVoid;
import ram_pc.Ram_pcFactory;
import ram_pc.Ram_pcPackage;
import ram_pc.Reference;
import ram_pc.ReferenceType;
import ram_pc.State;
import ram_pc.StateMachine;
import ram_pc.StateView;
import ram_pc.StructuralFeature;
import ram_pc.StructuralFeatureValue;
import ram_pc.StructuralView;
import ram_pc.TemporaryProperty;
import ram_pc.Transition;
import ram_pc.Type;
import ram_pc.TypedElement;
import ram_pc.ValueSpecification;
import ram_pc.Visibility;

/**
 * <!-- begin-user-doc -->
 * An implementation of the model <b>Factory</b>.
 * <!-- end-user-doc -->
 * @generated
 */
public class Ram_pcFactoryImpl extends EFactoryImpl implements Ram_pcFactory
{
  /**
   * Creates the default factory implementation.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public static Ram_pcFactory init()
  {
    try
    {
      Ram_pcFactory theRam_pcFactory = (Ram_pcFactory)EPackage.Registry.INSTANCE.getEFactory("http://cs.mcgill.ca/sel/ram/2.1_pointcut"); 
      if (theRam_pcFactory != null)
      {
        return theRam_pcFactory;
      }
    }
    catch (Exception exception)
    {
      EcorePlugin.INSTANCE.log(exception);
    }
    return new Ram_pcFactoryImpl();
  }

  /**
   * Creates an instance of the factory.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public Ram_pcFactoryImpl()
  {
    super();
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public EObject create(EClass eClass)
  {
    switch (eClass.getClassifierID())
    {
      case Ram_pcPackage.ASPECT: return createAspect();
      case Ram_pcPackage.MAPPABLE_ELEMENT: return createMappableElement();
      case Ram_pcPackage.STRUCTURAL_VIEW: return createStructuralView();
      case Ram_pcPackage.CLASS: return createClass();
      case Ram_pcPackage.ASSOCIATION_END: return createAssociationEnd();
      case Ram_pcPackage.ASSOCIATION: return createAssociation();
      case Ram_pcPackage.NAMED_ELEMENT: return createNamedElement();
      case Ram_pcPackage.INSTANTIATION: return createInstantiation();
      case Ram_pcPackage.MAPPING: return createMapping();
      case Ram_pcPackage.OPERATION: return createOperation();
      case Ram_pcPackage.ATTRIBUTE: return createAttribute();
      case Ram_pcPackage.TYPE: return createType();
      case Ram_pcPackage.PARAMETER: return createParameter();
      case Ram_pcPackage.PRIMITIVE_TYPE: return createPrimitiveType();
      case Ram_pcPackage.OBJECT_TYPE: return createObjectType();
      case Ram_pcPackage.RVOID: return createRVoid();
      case Ram_pcPackage.RBOOLEAN: return createRBoolean();
      case Ram_pcPackage.RINT: return createRInt();
      case Ram_pcPackage.RCHAR: return createRChar();
      case Ram_pcPackage.RSTRING: return createRString();
      case Ram_pcPackage.RANY: return createRAny();
      case Ram_pcPackage.RENUM: return createREnum();
      case Ram_pcPackage.RENUM_LITERAL: return createREnumLiteral();
      case Ram_pcPackage.ABSTRACT_MESSAGE_VIEW: return createAbstractMessageView();
      case Ram_pcPackage.MESSAGE_VIEW: return createMessageView();
      case Ram_pcPackage.MESSAGE_VIEW_REFERENCE: return createMessageViewReference();
      case Ram_pcPackage.INTERACTION: return createInteraction();
      case Ram_pcPackage.ASPECT_MESSAGE_VIEW: return createAspectMessageView();
      case Ram_pcPackage.LIFELINE: return createLifeline();
      case Ram_pcPackage.MESSAGE: return createMessage();
      case Ram_pcPackage.MESSAGE_END: return createMessageEnd();
      case Ram_pcPackage.MESSAGE_OCCURRENCE_SPECIFICATION: return createMessageOccurrenceSpecification();
      case Ram_pcPackage.OCCURRENCE_SPECIFICATION: return createOccurrenceSpecification();
      case Ram_pcPackage.DESTRUCTION_OCCURRENCE_SPECIFICATION: return createDestructionOccurrenceSpecification();
      case Ram_pcPackage.INTERACTION_FRAGMENT: return createInteractionFragment();
      case Ram_pcPackage.COMBINED_FRAGMENT: return createCombinedFragment();
      case Ram_pcPackage.ORIGINAL_BEHAVIOR_EXECUTION: return createOriginalBehaviorExecution();
      case Ram_pcPackage.EXECUTION_STATEMENT: return createExecutionStatement();
      case Ram_pcPackage.INTERACTION_OPERAND: return createInteractionOperand();
      case Ram_pcPackage.VALUE_SPECIFICATION: return createValueSpecification();
      case Ram_pcPackage.STRUCTURAL_FEATURE_VALUE: return createStructuralFeatureValue();
      case Ram_pcPackage.PARAMETER_VALUE_MAPPING: return createParameterValueMapping();
      case Ram_pcPackage.PARAMETER_VALUE: return createParameterValue();
      case Ram_pcPackage.OPAQUE_EXPRESSION: return createOpaqueExpression();
      case Ram_pcPackage.LITERAL_SPECIFICATION: return createLiteralSpecification();
      case Ram_pcPackage.LITERAL_STRING: return createLiteralString();
      case Ram_pcPackage.LITERAL_INTEGER: return createLiteralInteger();
      case Ram_pcPackage.FRAGMENT_CONTAINER: return createFragmentContainer();
      case Ram_pcPackage.RCOLLECTION: return createRCollection();
      case Ram_pcPackage.RSET: return createRSet();
      case Ram_pcPackage.RLIST: return createRList();
      case Ram_pcPackage.LAYOUT: return createLayout();
      case Ram_pcPackage.CONTAINER_MAP: return (EObject)createContainerMap();
      case Ram_pcPackage.ELEMENT_MAP: return (EObject)createElementMap();
      case Ram_pcPackage.LAYOUT_ELEMENT: return createLayoutElement();
      case Ram_pcPackage.CLASSIFIER: return createClassifier();
      case Ram_pcPackage.IMPLEMENTATION_CLASS: return createImplementationClass();
      case Ram_pcPackage.TEMPORARY_PROPERTY: return createTemporaryProperty();
      case Ram_pcPackage.STRUCTURAL_FEATURE: return createStructuralFeature();
      case Ram_pcPackage.REFERENCE: return createReference();
      case Ram_pcPackage.PROPERTY: return createProperty();
      case Ram_pcPackage.TYPED_ELEMENT: return createTypedElement();
      case Ram_pcPackage.GATE: return createGate();
      case Ram_pcPackage.LITERAL_BOOLEAN: return createLiteralBoolean();
      case Ram_pcPackage.CLASSIFIER_MAPPING: return createClassifierMapping();
      case Ram_pcPackage.ATTRIBUTE_MAPPING: return createAttributeMapping();
      case Ram_pcPackage.OPERATION_MAPPING: return createOperationMapping();
      case Ram_pcPackage.PARAMETER_MAPPING: return createParameterMapping();
      case Ram_pcPackage.STATE_VIEW: return createStateView();
      case Ram_pcPackage.STATE_MACHINE: return createStateMachine();
      case Ram_pcPackage.TRANSITION: return createTransition();
      case Ram_pcPackage.STATE: return createState();
      case Ram_pcPackage.POINTCUT: return createPointcut();
      default:
        throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
    }
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Object createFromString(EDataType eDataType, String initialValue)
  {
    switch (eDataType.getClassifierID())
    {
      case Ram_pcPackage.VISIBILITY:
        return createVisibilityFromString(eDataType, initialValue);
      case Ram_pcPackage.REFERENCE_TYPE:
        return createReferenceTypeFromString(eDataType, initialValue);
      case Ram_pcPackage.MESSAGE_SORT:
        return createMessageSortFromString(eDataType, initialValue);
      case Ram_pcPackage.INTERACTION_OPERATOR_KIND:
        return createInteractionOperatorKindFromString(eDataType, initialValue);
      case Ram_pcPackage.INSTANTIATION_TYPE:
        return createInstantiationTypeFromString(eDataType, initialValue);
      default:
        throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
    }
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public String convertToString(EDataType eDataType, Object instanceValue)
  {
    switch (eDataType.getClassifierID())
    {
      case Ram_pcPackage.VISIBILITY:
        return convertVisibilityToString(eDataType, instanceValue);
      case Ram_pcPackage.REFERENCE_TYPE:
        return convertReferenceTypeToString(eDataType, instanceValue);
      case Ram_pcPackage.MESSAGE_SORT:
        return convertMessageSortToString(eDataType, instanceValue);
      case Ram_pcPackage.INTERACTION_OPERATOR_KIND:
        return convertInteractionOperatorKindToString(eDataType, instanceValue);
      case Ram_pcPackage.INSTANTIATION_TYPE:
        return convertInstantiationTypeToString(eDataType, instanceValue);
      default:
        throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
    }
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public Aspect createAspect()
  {
    AspectImpl aspect = new AspectImpl();
    return aspect;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public MappableElement createMappableElement()
  {
    MappableElementImpl mappableElement = new MappableElementImpl();
    return mappableElement;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public StructuralView createStructuralView()
  {
    StructuralViewImpl structuralView = new StructuralViewImpl();
    return structuralView;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public ram_pc.Class createClass()
  {
    ClassImpl class_ = new ClassImpl();
    return class_;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public AssociationEnd createAssociationEnd()
  {
    AssociationEndImpl associationEnd = new AssociationEndImpl();
    return associationEnd;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public Association createAssociation()
  {
    AssociationImpl association = new AssociationImpl();
    return association;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public NamedElement createNamedElement()
  {
    NamedElementImpl namedElement = new NamedElementImpl();
    return namedElement;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public Instantiation createInstantiation()
  {
    InstantiationImpl instantiation = new InstantiationImpl();
    return instantiation;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public Mapping createMapping()
  {
    MappingImpl mapping = new MappingImpl();
    return mapping;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public Operation createOperation()
  {
    OperationImpl operation = new OperationImpl();
    return operation;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public Attribute createAttribute()
  {
    AttributeImpl attribute = new AttributeImpl();
    return attribute;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public Type createType()
  {
    TypeImpl type = new TypeImpl();
    return type;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public Parameter createParameter()
  {
    ParameterImpl parameter = new ParameterImpl();
    return parameter;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public PrimitiveType createPrimitiveType()
  {
    PrimitiveTypeImpl primitiveType = new PrimitiveTypeImpl();
    return primitiveType;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public ObjectType createObjectType()
  {
    ObjectTypeImpl objectType = new ObjectTypeImpl();
    return objectType;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public RVoid createRVoid()
  {
    RVoidImpl rVoid = new RVoidImpl();
    return rVoid;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public RBoolean createRBoolean()
  {
    RBooleanImpl rBoolean = new RBooleanImpl();
    return rBoolean;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public RInt createRInt()
  {
    RIntImpl rInt = new RIntImpl();
    return rInt;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public RChar createRChar()
  {
    RCharImpl rChar = new RCharImpl();
    return rChar;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public RString createRString()
  {
    RStringImpl rString = new RStringImpl();
    return rString;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public RAny createRAny()
  {
    RAnyImpl rAny = new RAnyImpl();
    return rAny;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public REnum createREnum()
  {
    REnumImpl rEnum = new REnumImpl();
    return rEnum;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public REnumLiteral createREnumLiteral()
  {
    REnumLiteralImpl rEnumLiteral = new REnumLiteralImpl();
    return rEnumLiteral;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public AbstractMessageView createAbstractMessageView()
  {
    AbstractMessageViewImpl abstractMessageView = new AbstractMessageViewImpl();
    return abstractMessageView;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public MessageView createMessageView()
  {
    MessageViewImpl messageView = new MessageViewImpl();
    return messageView;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public MessageViewReference createMessageViewReference()
  {
    MessageViewReferenceImpl messageViewReference = new MessageViewReferenceImpl();
    return messageViewReference;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public Interaction createInteraction()
  {
    InteractionImpl interaction = new InteractionImpl();
    return interaction;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public AspectMessageView createAspectMessageView()
  {
    AspectMessageViewImpl aspectMessageView = new AspectMessageViewImpl();
    return aspectMessageView;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public Lifeline createLifeline()
  {
    LifelineImpl lifeline = new LifelineImpl();
    return lifeline;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public Message createMessage()
  {
    MessageImpl message = new MessageImpl();
    return message;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public MessageEnd createMessageEnd()
  {
    MessageEndImpl messageEnd = new MessageEndImpl();
    return messageEnd;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public MessageOccurrenceSpecification createMessageOccurrenceSpecification()
  {
    MessageOccurrenceSpecificationImpl messageOccurrenceSpecification = new MessageOccurrenceSpecificationImpl();
    return messageOccurrenceSpecification;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public OccurrenceSpecification createOccurrenceSpecification()
  {
    OccurrenceSpecificationImpl occurrenceSpecification = new OccurrenceSpecificationImpl();
    return occurrenceSpecification;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public DestructionOccurrenceSpecification createDestructionOccurrenceSpecification()
  {
    DestructionOccurrenceSpecificationImpl destructionOccurrenceSpecification = new DestructionOccurrenceSpecificationImpl();
    return destructionOccurrenceSpecification;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public InteractionFragment createInteractionFragment()
  {
    InteractionFragmentImpl interactionFragment = new InteractionFragmentImpl();
    return interactionFragment;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public CombinedFragment createCombinedFragment()
  {
    CombinedFragmentImpl combinedFragment = new CombinedFragmentImpl();
    return combinedFragment;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public OriginalBehaviorExecution createOriginalBehaviorExecution()
  {
    OriginalBehaviorExecutionImpl originalBehaviorExecution = new OriginalBehaviorExecutionImpl();
    return originalBehaviorExecution;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public ExecutionStatement createExecutionStatement()
  {
    ExecutionStatementImpl executionStatement = new ExecutionStatementImpl();
    return executionStatement;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public InteractionOperand createInteractionOperand()
  {
    InteractionOperandImpl interactionOperand = new InteractionOperandImpl();
    return interactionOperand;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public ValueSpecification createValueSpecification()
  {
    ValueSpecificationImpl valueSpecification = new ValueSpecificationImpl();
    return valueSpecification;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public StructuralFeatureValue createStructuralFeatureValue()
  {
    StructuralFeatureValueImpl structuralFeatureValue = new StructuralFeatureValueImpl();
    return structuralFeatureValue;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public ParameterValueMapping createParameterValueMapping()
  {
    ParameterValueMappingImpl parameterValueMapping = new ParameterValueMappingImpl();
    return parameterValueMapping;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public ParameterValue createParameterValue()
  {
    ParameterValueImpl parameterValue = new ParameterValueImpl();
    return parameterValue;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public OpaqueExpression createOpaqueExpression()
  {
    OpaqueExpressionImpl opaqueExpression = new OpaqueExpressionImpl();
    return opaqueExpression;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public LiteralSpecification createLiteralSpecification()
  {
    LiteralSpecificationImpl literalSpecification = new LiteralSpecificationImpl();
    return literalSpecification;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public LiteralString createLiteralString()
  {
    LiteralStringImpl literalString = new LiteralStringImpl();
    return literalString;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public LiteralInteger createLiteralInteger()
  {
    LiteralIntegerImpl literalInteger = new LiteralIntegerImpl();
    return literalInteger;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public FragmentContainer createFragmentContainer()
  {
    FragmentContainerImpl fragmentContainer = new FragmentContainerImpl();
    return fragmentContainer;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public RCollection createRCollection()
  {
    RCollectionImpl rCollection = new RCollectionImpl();
    return rCollection;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public RSet createRSet()
  {
    RSetImpl rSet = new RSetImpl();
    return rSet;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public RList createRList()
  {
    RListImpl rList = new RListImpl();
    return rList;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public Layout createLayout()
  {
    LayoutImpl layout = new LayoutImpl();
    return layout;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public Map.Entry<EObject, EMap<EObject, LayoutElement>> createContainerMap()
  {
    ContainerMapImpl containerMap = new ContainerMapImpl();
    return containerMap;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public Map.Entry<EObject, LayoutElement> createElementMap()
  {
    ElementMapImpl elementMap = new ElementMapImpl();
    return elementMap;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public LayoutElement createLayoutElement()
  {
    LayoutElementImpl layoutElement = new LayoutElementImpl();
    return layoutElement;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public Classifier createClassifier()
  {
    ClassifierImpl classifier = new ClassifierImpl();
    return classifier;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public ImplementationClass createImplementationClass()
  {
    ImplementationClassImpl implementationClass = new ImplementationClassImpl();
    return implementationClass;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public TemporaryProperty createTemporaryProperty()
  {
    TemporaryPropertyImpl temporaryProperty = new TemporaryPropertyImpl();
    return temporaryProperty;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public StructuralFeature createStructuralFeature()
  {
    StructuralFeatureImpl structuralFeature = new StructuralFeatureImpl();
    return structuralFeature;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public Reference createReference()
  {
    ReferenceImpl reference = new ReferenceImpl();
    return reference;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public Property createProperty()
  {
    PropertyImpl property = new PropertyImpl();
    return property;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public TypedElement createTypedElement()
  {
    TypedElementImpl typedElement = new TypedElementImpl();
    return typedElement;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public Gate createGate()
  {
    GateImpl gate = new GateImpl();
    return gate;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public LiteralBoolean createLiteralBoolean()
  {
    LiteralBooleanImpl literalBoolean = new LiteralBooleanImpl();
    return literalBoolean;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public ClassifierMapping createClassifierMapping()
  {
    ClassifierMappingImpl classifierMapping = new ClassifierMappingImpl();
    return classifierMapping;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public AttributeMapping createAttributeMapping()
  {
    AttributeMappingImpl attributeMapping = new AttributeMappingImpl();
    return attributeMapping;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public OperationMapping createOperationMapping()
  {
    OperationMappingImpl operationMapping = new OperationMappingImpl();
    return operationMapping;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public ParameterMapping createParameterMapping()
  {
    ParameterMappingImpl parameterMapping = new ParameterMappingImpl();
    return parameterMapping;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public StateView createStateView()
  {
    StateViewImpl stateView = new StateViewImpl();
    return stateView;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public StateMachine createStateMachine()
  {
    StateMachineImpl stateMachine = new StateMachineImpl();
    return stateMachine;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public Transition createTransition()
  {
    TransitionImpl transition = new TransitionImpl();
    return transition;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public State createState()
  {
    StateImpl state = new StateImpl();
    return state;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public Pointcut createPointcut()
  {
    PointcutImpl pointcut = new PointcutImpl();
    return pointcut;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public Visibility createVisibilityFromString(EDataType eDataType, String initialValue)
  {
    Visibility result = Visibility.get(initialValue);
    if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
    return result;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public String convertVisibilityToString(EDataType eDataType, Object instanceValue)
  {
    return instanceValue == null ? null : instanceValue.toString();
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public ReferenceType createReferenceTypeFromString(EDataType eDataType, String initialValue)
  {
    ReferenceType result = ReferenceType.get(initialValue);
    if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
    return result;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public String convertReferenceTypeToString(EDataType eDataType, Object instanceValue)
  {
    return instanceValue == null ? null : instanceValue.toString();
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public MessageSort createMessageSortFromString(EDataType eDataType, String initialValue)
  {
    MessageSort result = MessageSort.get(initialValue);
    if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
    return result;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public String convertMessageSortToString(EDataType eDataType, Object instanceValue)
  {
    return instanceValue == null ? null : instanceValue.toString();
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public InteractionOperatorKind createInteractionOperatorKindFromString(EDataType eDataType, String initialValue)
  {
    InteractionOperatorKind result = InteractionOperatorKind.get(initialValue);
    if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
    return result;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public String convertInteractionOperatorKindToString(EDataType eDataType, Object instanceValue)
  {
    return instanceValue == null ? null : instanceValue.toString();
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public InstantiationType createInstantiationTypeFromString(EDataType eDataType, String initialValue)
  {
    InstantiationType result = InstantiationType.get(initialValue);
    if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
    return result;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public String convertInstantiationTypeToString(EDataType eDataType, Object instanceValue)
  {
    return instanceValue == null ? null : instanceValue.toString();
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public Ram_pcPackage getRam_pcPackage()
  {
    return (Ram_pcPackage)getEPackage();
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @deprecated
   * @generated
   */
  @Deprecated
  public static Ram_pcPackage getPackage()
  {
    return Ram_pcPackage.eINSTANCE;
  }

} //Ram_pcFactoryImpl
